草庐IT

c++ - Qt Release build 给出 MSVC++ Runtime Library Error

全部标签

c++ - constexpr 构造函数在 GCC 在编译时评估时给出不同的结果

构造函数在重复修改数据成员时使用一个引用并按值返回的函数:constexprintvv(intx){returnx;}constexprint&rr(int&x){returnx;}constexprintrv(int&x){returnx;}constexprstructS{intx{0};templateconstexprS(Ff){x=f(x)+1;x=f(x)+1;}}s(rv);//s.xis1iffunctionrvisused,2otherwise.static_assert(s.x==2,"");只有函数rv在构造函数中使用时会产生意外结果。如果vv或rr被传递,那么s

c++ - constexpr 构造函数在 GCC 在编译时评估时给出不同的结果

构造函数在重复修改数据成员时使用一个引用并按值返回的函数:constexprintvv(intx){returnx;}constexprint&rr(int&x){returnx;}constexprintrv(int&x){returnx;}constexprstructS{intx{0};templateconstexprS(Ff){x=f(x)+1;x=f(x)+1;}}s(rv);//s.xis1iffunctionrvisused,2otherwise.static_assert(s.x==2,"");只有函数rv在构造函数中使用时会产生意外结果。如果vv或rr被传递,那么s

c++ - MSVC 列出静态 .lib 文件中的符号

是否有我可以使用(或附带)VisualStudio的命令行工具,它可以以简单且易于解析的格式打印C++静态库文件中的符号名称? 最佳答案 MSVC自带dumpbin.exe工具,可以使用。例如显示图书馆的所有信息:dumpbin.exe/ALLyourlib.lib见MSDN供引用。 关于c++-MSVC列出静态.lib文件中的符号,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

c++ - MSVC 列出静态 .lib 文件中的符号

是否有我可以使用(或附带)VisualStudio的命令行工具,它可以以简单且易于解析的格式打印C++静态库文件中的符号名称? 最佳答案 MSVC自带dumpbin.exe工具,可以使用。例如显示图书馆的所有信息:dumpbin.exe/ALLyourlib.lib见MSDN供引用。 关于c++-MSVC列出静态.lib文件中的符号,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

c++ - 在 MSVC++2010 中禁用警告

我有以下代码:/**Stupidlycopiesunicodecharsintonormalchars.*/std::stringwstring2string(__inconststd::wstring&s){std::stringtemp(s.length(),'');#pragmawarning(push)#pragmawarning(disable:4244)//possiblelossofdatastd::copy(s.begin(),s.end(),temp.begin());#pragmawarning(pop)returntemp;}我的编译器仍然显示警告C4244:1>

c++ - 在 MSVC++2010 中禁用警告

我有以下代码:/**Stupidlycopiesunicodecharsintonormalchars.*/std::stringwstring2string(__inconststd::wstring&s){std::stringtemp(s.length(),'');#pragmawarning(push)#pragmawarning(disable:4244)//possiblelossofdatastd::copy(s.begin(),s.end(),temp.begin());#pragmawarning(pop)returntemp;}我的编译器仍然显示警告C4244:1>

c++ - "enum class"MSVC 10.0 的仿真或可靠替代方案

我正在为以下问题寻找一种hacky的解决方案:GCC4.4+接受以下c++0x代码:enumclassmy_enum{value1,value2};允许这样使用:my_enume=my_enum::value1;这带来了所有的花里胡哨。我想让这段代码与MSVC2010兼容,大意是使用语法不会改变。我之前已经思考过here,并且接受的答案有效,但是需要枚举和枚举值的两个不同名称正在破坏这两种方法的兼容性。这使得按原样替换C++0x代码当然无法使用。我想知道是否有一些#undef和#define诡计可以解决这个问题,让我使用enumclass-像语法(可能没有严格的类型安全等),但至少是相

c++ - "enum class"MSVC 10.0 的仿真或可靠替代方案

我正在为以下问题寻找一种hacky的解决方案:GCC4.4+接受以下c++0x代码:enumclassmy_enum{value1,value2};允许这样使用:my_enume=my_enum::value1;这带来了所有的花里胡哨。我想让这段代码与MSVC2010兼容,大意是使用语法不会改变。我之前已经思考过here,并且接受的答案有效,但是需要枚举和枚举值的两个不同名称正在破坏这两种方法的兼容性。这使得按原样替换C++0x代码当然无法使用。我想知道是否有一些#undef和#define诡计可以解决这个问题,让我使用enumclass-像语法(可能没有严格的类型安全等),但至少是相

c++ - 在 C++0x 中是否有类似 static_assert 的东西给出警告而不是错误?

我想为可能效率低但不一定不正确的用法这样做。 最佳答案 没有。断言失败表示程序无法完成的问题(无论是执行[运行时断言],还是编译[静态断言])。实际上,只要实现发出诊断(包括继续执行),就可以执行任何操作。但是,在实践中,主流工具链的行为都几乎相同:它们会出错。您当然不能将它们破解为用户定义的内容。 关于c++-在C++0x中是否有类似static_assert的东西给出警告而不是错误?,我们在StackOverflow上找到一个类似的问题: https://

c++ - 在 C++0x 中是否有类似 static_assert 的东西给出警告而不是错误?

我想为可能效率低但不一定不正确的用法这样做。 最佳答案 没有。断言失败表示程序无法完成的问题(无论是执行[运行时断言],还是编译[静态断言])。实际上,只要实现发出诊断(包括继续执行),就可以执行任何操作。但是,在实践中,主流工具链的行为都几乎相同:它们会出错。您当然不能将它们破解为用户定义的内容。 关于c++-在C++0x中是否有类似static_assert的东西给出警告而不是错误?,我们在StackOverflow上找到一个类似的问题: https://